public class OutClass {
    private int a;
    static int b;
    int c;
    public void methodA(){
        a = 10;
        System.out.println(a);
    }
    public static void methodB(){
        System.out.println(b);
    }
    //实例内部类：未被static修饰
    class InnerClass{
        int c;
        public void methodInner(){
            //在实例内部类中可以直接访问外部类中：任意访问限定符修饰的成员
            a = 100;
            b = 200;
            methodA();
            methodB();

            //如果外部类和实例内部类中具有相同的名称成员时，优先访问的内部类自己的
            c = 300;
            System.out.println(c);

            //如果要访问外部类同名成员的时候，必须：外部类名.this.同名成员名
            OutClass.this.c = 400;
            System.out.println(c);
        }
    }

    public static void main(String[] args) {
        //外部类：对象创建以及成员访问
        OutClass outClass = new OutClass();
        System.out.println(outClass.a);//a c
        System.out.println(OutClass.b);//b
        System.out.println(outClass.c);
        outClass.methodA();
        OutClass.methodB();
    }
}
